System for cotton trash measurement

ABSTRACT

Method of classification of a sample. An input color image of the sample, such as a sample of raw cotton, is obtained by a scanning technique. This image is first analyzed by an image segmentation module and a binary image where pixels of a first characteristic are marked as 0 (e.g. cotton lint) and non-lint pixels are marked as 1. In a following particle recognition module, the adjacent non-lint pixels are grouped together as particles, and the color, size, shape and edge strength for each particle are computed. The particle descriptions are analyzed and each particle is assigned a trash type: leaf, bark, grass, pepper trash or shadow. The data of leaf and pepper trash are analyzed by a leaf grading module, and leaf grade is reported. The data of bark/grass are analyzed by a bark/grass grading module and the bark/grass grade is reported.

CROSS-REFERENCE TO RELATED APPLICATIONS RELATED APPLICATIONS

[0001] This application is a non-provisional application and claims priority based on U.S. provisional patent application serial No. 60/304,653.

FIELD OF INVENTION

[0002] This application relates to non-human classification of bulk raw cotton.

BACKGROUND

[0003] Cotton trash is any non-lint material in the cotton. Examples of cotton trash are leaf, bark, grass and small foreign particles known as pepper trash. The amount of trash in cotton bales is a crucial factor in determining the market value of the cotton. The value used in determining cotton market value is classer's Leaf Grade and Bark/Grass Grade. The kind of trash and an indication of the amount (the Leaf Grade “1” through “7” and the Bark/Grass Grade “0”, “1” or “2”) are visually estimated by a human classer. Classer determination for leaf grade and bark/grass grade has been used for many decades and is still part of the official U.S. Department of Agriculture (USDA) cotton classification. No automatic system is known to be used to determine leaf grade and bark/grass grade currently.

[0004] Although the USDA provides High Volume Instrument (HVI) trash measurement, the correlation between HVI trash and classer's Leaf Grade is very low, and it is impossible to get Bark/Grass Grade from the HVI trash measurement. HVI trash is a measure of the amount of non-lint materials in the cotton, such as leaf, bark and grass. HVI trash measurement systems analyze the gray-scale images of a cotton sample surface using a fixed intensity threshold to identify pixels in cotton image as “lint” or “non-lint”. The amount of trash is then quantified as the percentage of the surface area occupied by non-lint pixels. While this method performs well if the cotton is bright white in color, the trash particles are always much darker than the lint, and the image light source does not degrade with use, these assumptions are often not satisfied in practice. Cotton colors range from bright white to dark yellow, non-lint material varies in darkness, and light sources degrade with use. Thus, it is not possible to assign a single threshold that is able to accurately discriminate between lint and non-lint material under all commonly encountered conditions. On the other hand, since all pixels that are darker than a certain threshold are considered as trash, the HVI trash system can not distinguish leaf, bark and grass, even shadows. That makes HVI trash system can not make good leaf grade and is impossible to make bark/grass grade.

[0005] The major advantage of human classing of cotton lies in the capability of a human being learning, organizing and accumulating knowledge. An experienced human classer can do a better job of categorizing and grading the cotton than any heretofore known computer system. However, the disadvantages are rather obvious. It is much more expensive to train and maintain a human classing system than a computer classing system. The reproducibility between two different individuals is lower compared to reproducibility between multiple computer systems. Moreover, a human classer can not quickly make accurate measurement of such as things as particle count, percentage area occupied by trash and average size of the trash particle. Thus, industry demands an automatic, accurate and reliable trash measurement system to replace the traditional human classing system for cotton.

[0006] Many attempts have been made to track a human classer's leaf grade based on percentage of surface area occupied by trash particles or count of trash particles, but all have failed. A human classer is trained using USDA leaf standard and a large number of cotton samples with known leaf and bark/grass grade. An experienced human classer forms a visual image of a cotton sample and usually determines leaf and bark/grass grade within few seconds for each sample. They never actually count the particles in the cotton sample or measure the size of the particles. What they do is first to categorize the content in the cotton sample to several categories and estimate the amount of each category based upon their image of the sample as compared to their “learned” standards. Second, they mentally process the information and make a leaf and bark/grass grade according to the knowledge that they learned through training and experience.

[0007] A successful non-human trash measurement system desirably would be able to emulate the human classer's system. First, the system must have the ability to categorize the content of the cotton image. There are lint, leaf, bark, grass, and shadows in a sample image. The system must be able to categorize the pixels in the cotton image into these categories and compute the amount of each category.

[0008] Second, the system must have the ability to implement and maintain a mathematical model that is able to learn the knowledge and process the multiple dimensional information non-linearly.

[0009] Image segmentation is the process of dividing images into sets of coherent regions or objects. It is one of the most difficult tasks in computer vision. It plays a critical role in object recognition of natural images. Unsupervised classification, or clustering, represents one promising approach for solving the image segmentation problem in typical application environments. The K-Means and Bayesian Learning algorithm are two well-known unsupervised classification methods. The K-Means approach is computationally efficient but assumes imaging conditions which are unrealistic in many practical applications. While the Bayesian learning technique always produces a theoretically optimal segmentation result, the large computational burden it requires is often unacceptable for many industrial tasks. A novel clustering algorithm, called Bayesian Weighted K-Means, is developed to divide the cotton image into lint and non-lint regions in trash measurement system. Through simplification of the Bayesian learning approach's decision-making process using cluster weights, the new technique is able to provide approximately optimal segmentation results while maintaining the computational efficiency generally associated with the K-Means algorithm.

[0010] Artificial Neural Network is an information-processing paradigm. It is based on the processing/memory abstraction of human information processing. Artificial neural network is composed of a large number of highly interconnected neurons that are connected with weighted connections. Each neuron is a mathematical model that emulates some of the features of biological neuron such as biological learning. Artificial Neural Network iteratively adjusts the connection weights based on a training set to learn the knowledge that is necessary to solve specific problems. The high non-linear structure and the capability of learning make the Artificial Neural Network well suit the problem that people are good at solving, but for which traditional methods are not. Artificial Neural Networks are used in trash measurement system to solve the leaf and bark/grass grading problems.

SUMMARY OF THE INVENTION

[0011] It is an objective of the present invention to provide an automatic, fast, reliable and robust color image-based trash measurement system which is able to replace the traditional human classing system which is particularly useful in classification of cotton. The present trash measurement system analyzes the high resolution, digital color image of a cotton sample accurately and precisely. Selected physical properties of the sample are computed employing the data obtained through the analysis of the digital color image. For example, the present system will provide identification of the kind of trash in the sample, and measurements of percentage of surface area occupied by trash particles in a cotton sample, along with, particle counts and average particle size for each kind of trash particles. The system will identify and quantify Leaf Grade and Bark/Grass Grade, which are highly correlated with leaf grade standard. It will also provide a visible marked cotton image where different kinds of particles are highlighted with different colors (“marked”). The detail information of each trash particle including color, size, shape, type will be output as particle analysis report. The data collected is employed to provide an output of the class of the cotton of the sample.

[0012] An input color image of a cotton sample is obtained by a scanning technique. This image is first analyzed by an image segmentation module and a binary image where lint pixels are marked as 0 and non-lint pixels are marked as 1. In a following particle recognition module, the adjacent non-lint pixels are grouped together as particles, and the color, size, shape and edge strength for each particle are computed. These particle descriptions are analyzed and each particle is assigned a trash type: leaf, bark, grass, pepper trash or shadow. The data of leaf and pepper trash are analyzed by a leaf grading module, and leaf grade is reported. The data of bark/grass are analyzed by a bark/grass grading module and the bark/grass grade is reported. Samples with known leaf grade and bark/grass grade will be used to train the system. The parameters or the structure of the mathematical model will be adjusted based on the training data to store the knowledge. The core technology used in this step is Artificial Neural Network.

BRIEF DESCRIPTION OF THE FIGURES

[0013]FIG. 1 is a generalized schematic flow diagram of one embodiment of a system of the present invention;

[0014]FIG. 2 is a detailed schematic flow diagram of the embodiment of the present system depicted in FIG. 1;

[0015]FIGS. 3a, 3 b, 3 c and 3 d depict four examples of input images (in black and white) depicting different colors and particles in the samples of cotton samples and trash;

[0016]FIG. 4 is an example of typical output results obtained through the use of the present system, including marked image, Leaf Grade, Bark/Grass Grade, nine measurements and particle analysis report from a typical cotton sample;

[0017]FIG. 5 is the generalized flow diagram of one embodiment of an image segmentation module as employed in the present invention;

[0018]FIG. 6 depicts in black and white the RGB color space of a typical cotton sample;

[0019]FIG. 7 depicts in black and white the CIELAB color space of the cotton sample depicted in FIG. 6;

[0020]FIG. 8 depicts in black and white the classified CIELAB color space of the cotton sample depicted in FIG. 6;

[0021]FIG. 9 depicts in black and white one example of binary image produced by the image segmentation module of the present invention;

[0022]FIG. 10 is an illustration depicting how to compute the distance between cluster center and decision boundary employing the present invention;

[0023]FIG. 11 is an illustration depicting how to compute the distance between cluster center and the tangent of decision boundary employing the present invention;

[0024]FIG. 12 is a generalized flow diagram of one embodiment of a particle recognition module as employed in the present invention;

[0025]FIG. 13 illustrates the 8-connectivity concept as employed in the present invention;

[0026]FIG. 14 depicts one example of a labeled image produced by the particle recognition module of the present invention;

[0027]FIG. 15 is a generalized flow diagram of one embodiment leaf grading module as employed in the present invention;

[0028]FIG. 16 is a diagrammatic representation of an artificial neural network architecture as employed in a leaf grading module of the present invention;

[0029]FIG. 17 is a diagrammatic representation of one embodiment of a single neuron structure as employed in the present invention;

[0030]FIG. 18 is a generalized flow diagram of one embodiment of a bark/grass grading module as employed in the present invention;

[0031]FIG. 19 is a diagrammatic representation of one embodiment of an artificial neural network architecture as employed in a bark/grass grading module of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0032] Referring to Figures land 2, one embodiment of the present invention includes an input 12 comprising a high resolution, digital color image of a cotton sample 14 such as shown in FIGS. 3(a)-3(d). The system 18 conducts analysis measurements 16 of the input image and outputs Leaf Grade 20, Bark/Grass Grade 22, marked image 24, particle analysis report 26 and nine measurements as depicted in FIG. 4 and Table A. TABLE A Leaf Grade 2.1 Bark/Grass Grade 1 Measurements Leaf Pepper Trash Bark/Grass % Area 0.215 0.052 0.279 Count/Inch² 1.451 2.790 0.223 Mean Size (μm) 977.158 345.374 2838.5 Particle Analysis Report (Partial) (Type: 1-Leaf, 2-Bark/Grass, 7-PepperTrash) LG Size CIEL CIEa CIEb Length Width Edge Type 2 911.9 68.7 −3.9 12.9 617.7 322.4 31.1 1 2 987.4 69.6 −3.5 9.6 662.9 477.6 24.4 1 2 478.9 68.9 −3.6 10.9 0 0 40.3 7 2 3729.2 64.9 −2.5 9.7 86863.3 3069.4 42.2 2 2 293.3 66.2 −2.5 8.9 0 0 47.5 7 2 535.5 64.9 5 27.7 343.4 96.9 55.7 1 2 1016 66.5 −2 13 1559 219 43.8 1

[0033] In a preferred embodiment, the present system includes at least four major modules, namely: Image Segmentation 30, Particle Recognition 32, Leaf Grading 34 and Bark/grass Grading 36.

[0034] A. Image Segmentation Module

[0035]FIG. 5 depicts a generalized flow diagram of one embodiment of a Image Segmentation module 30 of the present invention. The objective of the module is to divide the digital color image 12 of a cotton sample, for example, into lint regions and non-lint regions. The output of the module is a binary image in which lint pixels are “marked” as 0 and non-lint pixels are “marked” as 1.

[0036] In one embodiment three steps are employed to identify the non-lint material in the cotton image. First, a RGB color space 40, as shown in FIG. 6, is created from the input color image. The high-resolution input image preferably has at least 1.3 million pixels, hence it is time consuming to process. Since the cotton image is mostly white, yellow or gray, a large number of the pixels are substantially the same color, in other words, RGB (Red, Green, and Blue) value. Following this step, the frequency of appearance of color (R, G, B) is recorded in the related (R, G, B) coordinate of color space and the size of data set is reduced to one percent of the original data set. Second, the RGB color space is converted to the perceptually uniform CIELAB color space 42, as shown in FIG. 7. In the CIELAB model, the color differences, which are perceived by human eyes, correspond to distances measured calorimetrically. Third, a novel technique defined as Bayesian Weighted K-Means Clustering Algorithm 44 is used to classify the data points in the CIELAB color space into two clusters: lint 46 and non-lint 48 as shown in FIG. 8. FIG. 9 depicts the output binary image 50 where lint pixels 46 (typical) are marked as 0 (white) and non-lint pixels 48 are marked as 1 (black).

[0037] CIELAB color space is defined by the following equations:

L=116·[(Y/Y 0)^(⅓)−16/166]

a=500·[(X/X 0)^(⅓)−(Y/Y 0)^(⅓)]

b=500·[(Y/Y 0)^(⅓)−(Z/Z 0)^(⅓)]

[0038] where X, Y, Z is obtained from RGB values using the following equations:

[0039]X=0.490R+0.310G+0.200B

[0040]Y=0.177R+0.812G+0.011B

[0041]Z=0.000R+0.010G+0.990B

[0042] and (X0, Y0, Z0) are reference white points (R=255, G=255, B=255).

[0043] The method of the Bayesian Weighted K-Means Algorithm is discussed below. Given K feature space classes, a set of K initial n-dimensional cluster centers, μ_(k), a set of n-dimensional feature vectors, x_(j), j=1 . . . N, and a K-dimensional weighting vector w=[1/K . . . 1/K]^(T), and assuming spherical Gaussian clusters, each feature vector, x_(j), is first assigned to a cluster i such that the equation

min_(k)(e _(k)(x _(j))=∥x _(j) −μ _(k) ∥/w _(k))  (1)

[0044] is satisfied. New cluster centers, μ_(k), and covariance matrices, Σ_(k), are then calculated based on these feature assignments. Note that as the weight assigned to a cluster grows, the likelihood of individual features being assigned to that cluster increases, and the computational complexity is still of the order, O(N·K·n).

[0045] A novel aspect of the algorithm involves the process of updating the cluster weight vector using Bayes decision theory. The computationally expensive section of the Bayesian learning method involves the calculation of the n-dimensional Gaussian decision function, d_(k)(x_(j)), over each cluster, k, k−1 . . . K, and each feature vector, x_(j), j=1 . . . N. Thus, the time complexity is O(N·K·n²). However, instead of calculating the decision function for each feature vector and each cluster, the decision surface D_(r,s)(x) between adjacent clusters r and s is calculated in the Bayesian Weighted K-Means algorithm. The time complexity for this additional step is O(K²·n²), which is significantly smaller than O(N·K·n²) for the typical image processing task where N is large. The weight W_(y) of cluster r and w_(s) of cluster s are calculated based on the distance f(r, s) between cluster center μ_(r) and decision surface D_(r,s)(x) and f(s, r) between cluster center Ms and decision surface D_(r,s)(x) using

f(r,s)/W _(r) =f(s,r)/w _(s), where r=1 . . . K and r≠s  (2)

[0046] where,

f(r,s)=∥μ_(r) −D _(r,s)(x)∥  (3)

f(s,r)=∥μ_(s) −D _(r,s)(x)∥.  (4)

[0047] The decision surface D_(r,s)(x) for n-dimensional Gaussian distribution has the form $\begin{matrix} {{{\ln \quad p_{r}} - {\frac{1}{2}\ln {\sum\limits_{r}}} - {\frac{1}{2}\left\lbrack {\left( {x - \mu_{r}} \right)^{T}{\sum\limits_{r}^{- 1}\quad \left( {x - \mu_{r}} \right)}} \right\rbrack} - \left( {{\ln \quad p_{s}} - {\frac{1}{2}\ln {\sum\limits_{s}}} - {\frac{1}{2}\left\lbrack {\left( {x - \mu_{s}} \right)^{T}{\sum\limits_{s}^{- 1}\quad \left( {x - \mu_{s}} \right)}} \right\rbrack}} \right)} = 0} & (5) \end{matrix}$

[0048] which can be written in general quadratic form as

x ^(T) ·A·x+b ^(T) ·x+c=0  (6)

[0049] where A is n x n matrix, b is n-dimensional vector and c is a scalar. The distance f(r, s) from each cluster center to the proper decision boundary can be calculated as below.

[0050] Let l(x) be the line that passes through μ_(r), and μ_(s).

[0051] Compute intersection z of l(x) and decision surface D_(r,sj)(x).

[0052] Let P(x) be the tangential hyper-plane of decision surface D_(r,sj)(x) at point z.

[0053] Compute the distance, f(r, s), from μ_(r) to P(x).

[0054] Because the weighting vector w has K unknowns, K constraints are needed for a solution. From Equation (2), for all the possible combinations of r and s, K−1 of them are independent. Let r=1 . . . K−1 and s=r+1, equation (2) can be written as

G·w=0  (7)

[0055] where $\begin{matrix} {G = \begin{bmatrix} {f\left( {2,1} \right)} & {- {f\left( {1,2} \right)}} & 0 & 0 & 0 \\ 0 & {f\left( {3,2} \right)} & {- {f\left( {2,3} \right)}} & 0 & 0 \\ 0 & 0 & \ldots & \ldots & 0 \\ 0 & 0 & 0 & {f\left( {K,{K - 1}} \right)} & {- {f\left( {{K - 1},K} \right)}} \end{bmatrix}_{{({K - 1})} \times K}} & (8) \end{matrix}$

[0056] Equation (7) is a homogeneous system with K−1 equations, K unknowns and rank(G)=K−1. A solution for the weighting vector up to a scale, w′, can be found from equation (7) using SVD (Singular Value Decomposition). The solution w′ is the eigenvector corresponding to the smallest eigenvalue of G^(T)G. In addition,

Σw=1  (9)

[0057] Thus, the actual weighting vector is determined by

w=w′/Σ(w′)  (10)

[0058] Once the weighting vector has been updated, the entire assign-update procedure is repeated until the cluster centers and weights converge to a stable value.

[0059] Note that calculating the intersection of a line with a general quadratic can be computationally burdensome for high dimensional feature spaces. Because the decision surfaces are used for updating of the weighting vector instead of dividing the patterns into classes, dominant modes can be used to approximate a lower order, p<n, decision surface. Thus, in the current implementations of the algorithm, lower dimensional features, x′, are used in Equations (3) to (6) to solve for the weighting vector. The one-dimensional and two-dimensional cases are discussed below.

[0060] In the case with one dominant discriminatory mode, the lower dimensional feature vector x′ becomes a scalar x, μ_(r) becomes a scalar u_(r), μ_(s) becomes a scalar u_(s), and the decision surface D_(r,s)(x) is given by the parabola

a·x ² +b·x+c=0  (11)

[0061] Thus, the quadratic formula can be used to solve for the decision point between two adjacent clusters, $\begin{matrix} {x_{1,2} = \frac{{- b} \pm \sqrt{b^{2} - {4a\quad c}}}{2a}} & (12) \end{matrix}$

[0062] Letting T=x_(1,2) where T is chosen such that, μ_(r)<T<μ_(s), the distance from each cluster center can be computed using

f(r,s)=∥μ_(r) −D _(rj)(x) ∥=|μ_(r) −T|  (14)

[0063] and

f(s,r)=∥μ_(rs) −D _(r,s)(x)∥=|μ_(s) −T|  (15)

[0064] In the case of two discriminatory modes, the feature vector x′ reduces to a point (x, y), μ_(r) becomes a point (u_(r), v_(r)); μ_(s) becomes a point (u_(s), v_(s)) and the decision surface D_(r,s)(x) is given by the ellipsoid:

A·x ² +B·x·y+C·y ² +D·x+E·y+F=0  (16)

[0065] The distance f(r,s)=∥μ_(r)−D_(r,s)(x)| can be calculated as below (see FIG. 10):

[0066] Let l₁(x,y) be the line that passes through μ_(r) and μ_(s)

y−v _(r)=(v _(s) −v _(r))/(u _(s) −u _(r))·(x−u _(r))  (17)

[0067] Compute the intersection (a,b) of l₁(x,y) and curve D_(r,s)(x,y).

[0068] Compute $\begin{matrix} {\frac{\partial y}{\partial x} = {{- \frac{{2 \cdot A \cdot x} + {B \cdot y} + D}{{B \cdot x} + {2 \cdot C \cdot y} + E}} = {- \frac{{2{A \cdot a}} + {B \cdot b} + D}{{B \cdot a} + {2 \cdot C \cdot b} + e}}}} & (18) \end{matrix}$

[0069] Let l₂(x,y) be the line that passes through (a, b) and has the slope, ∂y/∂x such that

y−b=∂y/∂x·((x−a).  (19)

[0070] Compute the distance from (u_(r), v_(r)) to l₂(x, y) (see FIG. 11) using

f(r,s)=|v ₁ −y|·cos(π−α), where α=tan⁻¹(∂y/∂x).  (20)

[0071] A complete listing of the algorithm is provided below. Assumptions:

[0072] Each cluster is modeled by a spherical Gaussian distribution Input Data:

[0073] Pattern Set−X={x in R^(n)|x_(j)j=1 . . . . N}

[0074] Number of Clusters−K

[0075] Initial Cluster Centers−μin R^(n), k=1 . . K

[0076] Initial K-dimensional weighting vector, w=[1/K . . 1/K]^(T)

[0077] A priori probability of cluster −p_(k)

[0078] Steps:

[0079] 1. For each feature vector x_(j), compute e_(k)(x_(j))=∥x_(j)−μ_(k)∥/w_(k) for each cluster center, μ₁. Find the minimal value of e_(k)(x_(j)) with respect to k for each feature vector. Assign pattern x_(j) to cluster k.

[0080] 2. Compute new cluster centers μ_(k) and covariance matrices Σ_(k) for each cluster.

[0081] 3. Update the weighting vector w.

[0082] a) For cluster r and s=r+1 where r=1 . . K−1, compute the decision surface D_(r,s)(x′) using Bayes decision theory, where x′ is a subset of size one or two selected from x to reduce the computational complexity of the decision surface.

[0083] b) Compute the distance from each cluster center to the appropriate decision surface

f(r,s)=∥μ_(r) −D _(r,s)(x′)∥  (21)

[0084] and

f(r,s)=∥μ_(s) −D _(r,s)(x′)∥  (22)

[0085] c) Let

f(r,s)/w _(r) =f(s,r)/w_(s) ,r=1 . . . K−1,s=r+1.  (23)

[0086] d) Use the expression

G·w=0  (24)

[0087] where $\begin{matrix} {G = \begin{bmatrix} {f\left( {2,1} \right)} & {- {f\left( {1,2} \right)}} & 0 & 0 & 0 \\ 0 & {f\left( {3,2} \right)} & {- {f\left( {2,3} \right)}} & 0 & 0 \\ 0 & 0 & \ldots & \ldots & 0 \\ 0 & 0 & 0 & {f\left( {K,{K - 1}} \right)} & {- {f\left( {{K - 1},K} \right)}} \end{bmatrix}_{{({K - 1})} \times K}} & (25) \end{matrix}$

[0088] and the normalizing constraint

Σ(w)=1  (26)

[0089] to solve for a new weighting vector w.

[0090] 4. If the old model and new model parameters, {μ,w}, are sufficiently close to each other, terminate, else return to step 1.

[0091] B. Particle Recognition Module

[0092]FIG. 12 depicts a generalized flow diagram of one embodiment of the process of particle recognition module 34. The objective of this module is to categorize and analyze the non-lint regions 48 identified in the image segmentation module 32. This module 24 outputs measurements 16 for leaf, bark/grass and pepper trash, marked image 24 and the particle analysis report 26 (see FIG. 1).

[0093] The first step of particle recognition is pixel grouping 60. This step applies connected components labeling algorithm to process input binary image 50. The connected non-lint pixels are grouped as particles based on 8-connectivity (see FIG. 13). In 8-connectivity, the pixel (i, j) is connected with neighbor pixels (i−1, j−1), (i−1, j), (i−1, j+1), (i, j−1), (i, j+1), (i+1, j−1), (i+1, j) and (i+1, j+1) as shown in FIG. 13. Denote i means ith row and j means jth column in the image. Image(i, j) means the value of pixel (i, j). Label(i, j) means the label that is assigned to pixel (i, j). After connected components labeling, every pixel will be assigned a label and the pixels in the sample particle will be assigned the same label.

[0094] The connected components labeling operator scans the binary image from left to right and from top to bottom until it comes to a pixel (i, j) for which Image(i, j)=1 (non-lint pixel). The operator checks four of the neighbors of (i, j) which have already been encountered in the scan. They are pixels (i−1, j−1), (i−1, j), (i−1, j+1), and (i, j−1). If all four neighbors have value of 0, assign a new label to (i, j). If only one neighbor has value of 1, assign its label to (i, j). If more than one neighbors have value of 1, assign maximal label to (i, j) and record the equivalence between all other labels and the maximal label. After completing the scan, the equivalent label pairs are sorted into equivalence classes and a unique label is assigned to each class. As a final step, a second scan is made through the image, during which each label is replaced by the label assigned to its equivalence classes.

[0095] As shown in FIG. 14, the labeled image, all the pixels are grouped into particles and each particle is assigned a label as particle id.

[0096] The following step describes particle description 62. Color, size, shape and edge strength is computed for each particle. The algorithm is shown below.

[0097] Size—the square root of particle area.

[0098] PixelCount−0

[0099] For each pixel in the particle,

[0100] PixelCount=PixelCount+1,

[0101] End For

[0102] Size=sqrt(PixelCount)/150 dpi*25400 micron/inch

[0103] Color—the average color of all the pixels in the particle in CIELAB color space.

[0104] Particle.Color=0

[0105] For each pixel in the particle,

[0106] Particle.Color=Particle.Color+Pixel.Color,

[0107] End For

[0108] Particle.Color=Particle.Color/PixelCount

[0109] Shape—thinness, the ratio of particle length and width.

[0110] Compute the covariance matrix of the distance from pixels to particle center:

[0111] Center.x=0

[0112] Center.y=0

[0113] For each pixel in the particle,

[0114] Center.x=Center.x+Pixel.x,

[0115] Center.y=Center.y+Pixel.y

[0116] End For

[0117] Center.x=Center.x/PixelCount

[0118] Center.y=Center.y/PixelCount

[0119] XX=0

[0120] XY=0

[0121] YY=0

[0122] For each pixel in the particle

[0123] Dx=Pixel.x−Center.x

[0124] Dy=Pixel.y−Center.y

[0125] XX=XX+Dx*Dx/PixelCount

[0126] XY=XY+Dx*Dy/PixelCount

[0127] YY=YY+Dy*Dy/PixelCount

[0128] End For

[0129] ConvarianceMatrix=[XX, XY

[0130] XY, YY]

[0131] Compute the eigenvalues of the covariance matrix:

[0132] The characteristic polynomial is:

[0133] eig^ 2−(XX+YY)*eig+XX*YY−XY^ 2=0

[0134] eig1=½*[(XX+YY)+sqrt(XX^ 2−2*XX*YY+YY^ 2+4*XY^ 2)]

[0135] eig2=½*[(XX+YY)−sqrt(XX^ 2−2*XX*YY+YY^ 2+4*XY^ 2)]

[0136] Length=eig1

[0137] Width=eig2

[0138] Thinness=Length/Width

[0139] Edge Strength—average edge strength of all the pixels in the particle Apply the Sobel filter:

[0140] [−1 −2 −1

[0141] 0 0 0

[0142] 1 2 1] and

[0143] [−1 0 1

[0144] −2 0 2

[0145] −1 0 1] to each pixel in the particle

[0146] EdgeStrength=0

[0147] For each pixel in the filtered particle,

[0148] EdgeStrength=EdgeStrength+PixelValue,

[0149] End For

[0150] EdgeStrength=EdgeStrength/PixelCount

[0151] Each particle with the description of color, size, shape and edge strength is then passing through four filters 64, 66, 68 and 70 as shown in FIG. 12. Edge strength filter 64 blocks all the shadows and allows all of the real particles to pass through. Size filter 66 blocks all the pepper trash and allows all of the large particles to pass through. Shape filter 68 blocks all the leaf and allows all of the bark/grass particles to pass through. Finally, the color filter 70 separates the bark and grass. The filtering result is then utilized to mark the image, generate the particle analysis report and compute the measurements of leaf, pepper trash and bark/grass.

[0152] C. Leaf Grading Module

[0153] Following the image segmentation and particle recognition modules, all kinds of trash particles are measured and classified. What will finally determine the cotton market value, however, is the Leaf Grade and Bark/Grass Grade. A generalized flow diagram of one embodiment of a Leaf Grading module 90 is depicted in FIG. 15. This module is designed to develop the Leaf Grade 9 based on the measurements and classifications of all the trash particles. In the industry, there are seven leaf grades, designated as leaf grade “1” through “7”. Leaf grade 1 represents lowest leaf content or highest quality of cotton. In the present invention, Artificial Neural Network is employed in this module to estimate the Leaf Grade based on the percentage surface area occupied by leaf particles, leaf particles count per inch squared, percentage surface area occupied by pepper trash, and pepper trash particles count per inch squared as shown in FIG. 15.

[0154] As shown in FIG. 16, a two-layer feed forward neural network 100 with four inputs 102, 104, 106 and 108, ten hidden neurons 110 (typical) and one output 112 is constructed. Each neuron in layer 1 and layer 2 has the structure as show in FIG. 17. The mathematical model of neuron [i, j] is

x _(i,j) =f _(i)(x _(i−1,l) *W _(i,j,) + . . . +x _(i−1,k) *w _(i,j,k) + . . . +x _(i−1,n) *w _(i,j,n) +b _(i,j))  (27)

[0155] where i stands for i th layer, j stands for j th neuron in a layer, x_(i,j) is the output of neuron [i, j], X_(i−1,k) is the output of neuron [i−1, k], w_(i,j,k) is the weight of connection between neuron [i, j] and neuron [i−1, k], b_(i,j) is the bias of neuron [i, j] and f_(i)( ) is the activation function of i th layer. In Leaf Grading module, the activation function for layer 1 is hyperbolic tangent function:

f ₁(x)=2/(1+exp(−2*x))−1  (28)

[0156] The activation function for layer 2 is pure linear function:

f ₂(x)=x  (29)

[0157] Let m be the number of neurons in layer i and n be the number of neurons in layer i−1. The m outputs for i th layer will be:

x _(i,l) =f _(i)(x _(i−1,l) *w _(i,l,l) + . . . +x _(i−1,k) *w _(i,l,k) + . . . +x _(i−1,n) *w _(i,l,n) +b _(i,l))  (30)

x _(i,j) =f _(i)(x _(i−1,l) *w _(i,j,l) + . . . +x _(i−1,k) *w _(i,j,k) + . . . +x _(i−1,n) *w _(i,j,n) +b _(i,j))

x _(i,m) =f _(i)(x _(i−1,l) *w _(i,m,l) + . . . +x _(i−1,k) *w _(i,m,k) + . . . +x _(i−1,n) *w _(i,m,n) +b _(i,m))

[0158] The matrix format of Equation (30) is

x _(i) =f _(i)(W ₁ ·x ₀ +b ₁)  (31)

[0159] where x_(i) is m-dimensional output vector of i th layer, w_(i) is m×n weight matrix of i th layer, and b_(i) is m-dimensional bias vector of i the layer.

[0160] For Leaf Grading module, the mathematical model is

x ₁ =f ₁(W ₁ ·x ₀ +b ₁)  (32)

x ₂ =f ₂(W ₂ ·x ₁ +b ₂)

[0161] where W₁ is the 10×4 weight matrix of layer 1, b₁ is the 10-dimensional bias vector for layer 1, W₂ is the 1×10 weight matrix of layer 2, b₂ is the bias for layer 2. x₀ is the 4-dimensional input vector (Leaf % Area, Leaf Count/inch², Pepper Trash % Area, Pepper Trash Count/inch^(2), x) ₁ is 10-dimentional vector and x2 is the Leaf Grade.

[0162] The Artificial Neural Network must be trained using leaf standard and hundreds of cotton samples with known leaf grade. The weight matrix W₁ and W₂ and bias vector b₁ and b2 will be determined in the training process. The training algorithm used here is Levenberg-Marquardt algorithm. The algorithm is performed in off-line, or batch, mode, where the weight matrixes and bias vectors are only updated after a complete scan through the whole training set. The Levenberg-Marquardt algorithm is a non-linear least squares algorithm. It is an approximation to Gauss-Newton method. The algorithm is described below.

[0163] The performance index for the network is $\begin{matrix} {V = {{\frac{1}{2}{\sum\limits_{q = 1}^{Q}\quad {\left( {t^{q} - x_{M}^{q}} \right)^{T}\left( {t^{q} - x_{M}^{q}} \right)}}} = {\frac{1}{2}{\sum\limits_{q = 1}^{Q}\quad {\left( e^{q} \right)^{T}e^{q}}}}}} & (33) \end{matrix}$

[0164] where Q is the number of input vectors in data set, x_(M) ^(q) is the output of the network when the q th input vector, x₀ ^(q), is presented, t^(q) is the target of the q th input, and e^(q)=t^(q)−x_(M) ^(q) is the error for q th input. In Leaf Grading module, M=2 and the target tq and output x₂ ^(q) are scalars. Thus, $\begin{matrix} {V = {{\sum\limits_{q = 1}^{Q}\quad \left( {t^{q} - x_{M}^{q}} \right)^{2}} = {\sum\limits_{q = 1}^{Q}\quad \left( e^{q} \right)^{2}}}} & (34) \end{matrix}$

[0165] Since x₂ ^(q) is a function of W₁, b₁, W₂ and b₂, let

y=[w _(1,1,1,) , . . . w _(1,10,4) b _(1,10) w _(2,1,10) , . . . w _(2,1,10) ,b _(2,1)]^(T)  (35)

[0166] Thus, $\begin{matrix} {{V(y)} = {{\sum\limits_{q = 1}^{Q}\quad \left\lbrack {t^{q} - {x_{M}^{q}(y)}} \right\rbrack^{2}} = {\sum\limits_{q = 1}^{Q}\quad \left\lbrack {e^{q}(y)} \right\rbrack^{2}}}} & (36) \end{matrix}$

[0167] We want to minimize V(y) with respect to the parameter vector y, the Levenberg-Marquardt method would be

Δy=[j ^(T)(y)J(y)+μl]⁻¹ J ^(T)(y)e(y)  (37)

[0168] where Where J(y) is the Jacobian matrix. $\begin{matrix} {{J(y)} = \begin{bmatrix} \frac{\partial{e^{1}(y)}}{\partial y_{1}} & \frac{\partial{e^{1}(y)}}{\partial y_{2}} & \cdots & \frac{\partial{e^{1}(y)}}{\partial y_{61}} \\ \frac{\partial{e^{2}(y)}}{\partial y_{1}} & \frac{\partial{e^{2}(y)}}{\partial y_{2}} & \cdots & \frac{\partial{e^{2}(y)}}{\partial y_{61}} \\ \vdots & \vdots & ⋰ & \vdots \\ \frac{\partial{e^{Q}(y)}}{\partial y_{1}} & \frac{\partial{e^{Q}(y)}}{\partial y_{2}} & \cdots & \frac{\partial{e^{Q}(y)}}{\partial y_{61}} \end{bmatrix}} & (38) \end{matrix}$

[0169] The parameter g is multiplied by some factor (β) whenever a step would result in an increased V(y). The algorithm adjusts μ, and then computes y_(new)=y+Δy until V(y_(new)) is decreased. When a Δy that decreases V(y) is found, y is updated using y=y+Δy. The algorithm iteratively update y until the objective of the performance index V(y) is achieved.

[0170] After training, the Artificial Neural Network is ready to accept the measurements and produce leaf grade. The output of the network is presented in one decimal leaf grade (e.g., 2.4) to provide more accurate representation of leaf content than traditional 7-level leaf grade. It is easy to convert the decimal leaf grade to traditional 7-level leaf applying round-to-nearest-integer method. For example, decimal leaf grade 3.3 will be converted to traditional leaf grade 3 and leaf grade 3.7 will be converted to traditional leaf grade 4.

[0171] D. Bark/Grass Grading Module

[0172] The objective of Bark/Grass Grading module 22 is to produce Bark/Grass Grade based on the measurement. There are three different Bark/Grass Grading levels designated as “0” through “2”. Bark/Grass Grade “0” means there are no Bark/Grass in the cotton, Bark/Grass Grade “1” means bark/grass content in cotton is light and Bark/Grass Grade “2” means bark/grass content is heavy. A generalized flow diagram of one embodiment of a Bark/Grass Grading module employs the same Artificial Neural Network 100 technique with the different inputs as shown in FIG. 18. The inputs are percentage surface area 116 occupied by bark/grass particles and the bark/grass particles count per inch squared 118.

[0173] As shown in FIG. 19, a two-layer feed forward neural network with two inputs, ten hidden neurons and one output is constructed. The Artificial Neural Network is also trained by the Levenberg-Marquardt algorithm.

[0174] The output of the network is in decimal value between 0 to 2.5. The decimal value will be rounded to an integer based on round-to-nearest-integer method. The rounded value is then reported as Bark/Grass grade. 

What is claimed:
 1. A method classifying a sample which is amenable to the conversion thereof to a digital image comprising the steps of converting the sample to a digital image, converting selected elements of said digital image to binary data, converting said binary data for each selected element into one or more numeric values, each of which is representative of one or more physical properties of the selected element, converting said numeric values into a cumulative value which is indicative of the classification of the sample.
 2. The method of claim 1 and including the step of providing an output which is visually recognizable as a measure of the numerical value of each selected element.
 3. The method of claim 1 wherein one of said selected elements of the sample is color.
 4. The method of claim 1 wherein said numerical values include cumulative values of one or more grouping of like selected elements within the sample.
 5. The method of claim 1 wherein the sample comprises cotton fibers and said selected elements comprise trash disposed within the sample.
 6. The method of claim 5 wherein said selected elements include leaf, bark, grass and/or pepper trash.
 7. The method of claim 1 wherein one of said selected elements includes shadows.
 8. A method of analysis of a sample which includes diverse elements comprising the steps of electronically scanning the sample to develop a digital image of said sample, said digital image including representations of each of a plurality of the elements of the sample, converting said digital image to a binary image wherein each of the diverse elements of the sample are assigned a binary identification, in a computer, scanning said binary image and establishing the existence of, and one or more properties of, each of one or more selected ones of the elements of the sample, and assigning a value to said one or more properties of each of said one or more selected ones of the elements of the sample, electronically filtering said values for said selected elements to separate said values into groupings for respective ones of said selected elements, employing an artificial network, estimating a classification of the sample based on said filtered values.
 9. The method of claim 8 wherein said digital image includes color.
 10. The method of claim 8 and including the step of grouping like values of each of said one or more properties of said selected ones of the elements of the sample prior to filtering of said values.
 11. The method of claim 8 wherein said values are assigned to properties including color, size, shape and/or edge strength.
 12. The method of claim 8 wherein the sample comprises cotton fibers and trash contained therein.
 13. The method of claim 12 wherein said trash includes leaf, bark, grass and/or pepper trash.
 14. A method of analysis of a sample which includes diverse elements comprising the steps of developing a two-dimensional color digital image of the sample, converting said digital image to a binary image wherein each of the pixels of said digital image are assigned a value, in a computer, grouping like ones of said pixels into separate groups, filtering said groups to separate said groups one from another, analyzing each of said groups and assigning a numerical value to each group as a function of a selected property of one of the diverse elements of the sample.
 15. The method of claim 14 and including the step of employing said values assigned to one or more of said groups, providing an output representative of an overall value of the sample.
 16. A method for the classification of cotton samples which include diverse trash elements comprising the steps of developing a two-dimensional color digital image of the sample, creating an RGB color space employing said two or more groups of values, creating a CIELAB color space, employing a Bayesian Weighted K-Means Clustering Algorithm, classifying the data points in the CIELAB color space to convert said digital image to a binary image, assigning values to each of the pixels of said binary image, grouping like ones of said sets into two or more groups, categorizing and analyzing at least one selected group of said groups employing a connected components labeling algorithm to divide said binary image into sets of coherent regions or objects, creating an RGB color space employing said two or more groups of values, analyzing the color size, shape and edge strength of each categorized selected group, marking each categorized group as a function of its detected characteristics, generating an analysis report for each categorized group, outputting a classification of the sample. 